// +----------------------------------------------------------------------
// | FanAdmin 致力于为快速构建管理应用程序提供解决方案
// +----------------------------------------------------------------------
// | 简单轻量, 高颜值, 高效率, 让后台开发更简单
// | 代码的简洁规范, 通俗易懂, 无过度封装, 对萌新小白十分友好
// | 代码注释完整易读性高, 尽量保障初级程序员也可读懂, 极大提升二开效率
// | 同样是一个快速学习前沿技术的最佳实践, 永久免费开源使用
// +----------------------------------------------------------------------
// | Author: xiejiafan <82864861@qq.com>
// +----------------------------------------------------------------------
// | Thank you very much for using FanAdmin. https://gitee.com/xiejiafan/fanadmin
// +----------------------------------------------------------------------

// 引入ElementPlus
import ElementPlus from 'element-plus'

// 引入ElementPlus的css
import 'element-plus/dist/index.css'

// @ts-ignore忽略当前文件ts类型的检测否则有红色提示(打包会失败)
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'

// 引入ElementPlus所有图标
import * as ElementPlusIconsVue from '@element-plus/icons-vue'

// 引入ElementPlus的暗黑模式css
import 'element-plus/theme-chalk/dark/css-vars.css'

//
import 'virtual:uno.css'

// 引入路由
import router from '@/core/router/index.ts'

// 引入仓库pinia
import pinia from '@/core/store/index.ts'

// 引入I18n语言配置
import I18n from '@/core/lang/index'

// 引入全局组件配置
import allGlobalComponent from '@/core/components/index.ts'

// SVG插件配置
import 'virtual:svg-icons-register'

// 引入全局自定义指令
import directives from '@/core/directive/index'

// 引入animate
import 'animate.css'

export default {
  async install(app: any) {
    // 注册pinia
    app.use(pinia)

    // 注册ElementPlus所有图标
    for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
      app.component(key, component)
    }

    // 注册ElementPlus
    //@ts-ignore忽略当前文件ts类型的检测否则有红色提示(打包会失败)
    app.use(ElementPlus, {
      locale: zhCn,
    })

    // 注册I18n
    app.use(I18n)

    // 注册自定义组件
    app.use(allGlobalComponent)

    // 注册全局自定义指令
    app.use(directives)

    // 注册路由
    app.use(router)
  },
}
